package com.changan.config;

public class FlinkConfig {
    public static class Kafka {
        public final static String CONNECTOR = "connector";
        public final static String TOPIC = "topic";
        public final static String PROPERTIES_BOOTSTRAP_SERVER = "properties.bootstrap.servers";
        public final static String PROPERTIES_GROUP_ID = "properties.group.id";
        public final static String TOPIC_PATTERN = "topic-pattern";
        public final static String FORMAT = "format";
        public final static String KEY_FORMAT = "key.format";
        public final static String KEY_FIELDS = "key.fields";
        public final static String KEY_FIELDS_PREFIX = "key.fields-prefix";
        public final static String VALUE_FORMAT = "value.format";
        public final static String VALUE_FIELDS_INCLUDE = "value.fields-include";
        public final static String SCAN_STARTUP_MODE = "scan.startup.mode";
        public final static String SCAN_STARTUP_SPECIFIC_OFFSETS = "scan.startup.specific-offsets";
        public final static String SCAN_STARTUP_TIMESTAMP_MILLIS = "scan.startup.timestamp-millis";
        public final static String SCAN_TOPIC_PARTITION_DISCOVERY_INTERVAL = "scan.topic-partition-discovery.interval";
        public final static String SINK_PARTITIONER = "sink.partitioner";
        public final static String SINK_SEMANTIC = "sink.semantic";
        public final static String SINK_PARALLELISM = "sink.parallelism";

    }
    public static class Debezium {
        public final static String FORMAT = "format";
        public final static String SCHEMA = "schema";
        public final static String INGESTION_TIMESTAMP = "ingestion-timestamp";
        public final static String SOURCE_TIMESTAMP = "source.timestamp";
        public final static String SOURCE_DATABASE = "source.database";
        public final static String SOURCE_SCHEMA = "source.schema";
        public final static String SOURCE_TABLE = "source.table";
        public final static String SOURCE_PROPERTIES = "source.properties";
        public final static String SCHEMA_INCLUDE = "debezium-json.schema-include";
        public final static String IGNORE_PARSE_ERRORS = "debezium-json.ignore-parse-errors";
        public final static String TIMESTAMP_FORMAT_STANDARD ="debezium-json.timestamp-format.standard";
        public final static String MAP_NULL_KEY_MODE = "debezium-json.map-null-key.mode";
        public final static String MAP_NULL_KEY_LITERAL = "debezium-json.map-null-key.literal";
        public final static String ENCODE_DECIMAL_AS_PLAIN_NUMBER = "debezium-json.encode.decimal-as-plain-number";
    }
    public static class Kudu{
        public static String FLINK_VERSION_10_KUDU = "connector.type";
        public static String FLINK_VERSION_11_KUDU = "connector";
        public static String KUDU_MASTER = "kudu.masters";
        public static String KUDU_TABLE = "kudu.table";
        public static String KUDU_HASH_COLUMNS = "kudu.hash-columns";
        public static String KUDU_PRIMARY_KEY_COLUMN = "kudu.primary-key-columns";
        public static String KUDU_REPLICAS = "kudu.replicas";
        public static String KUDU_RANGE_PARTITION_RULE = "kudu.range-partition-rule";
        public static String KUDU_LOOKUP_CACHE_MAX_ROWS = "kudu.lookup.cache.max-rows";
        public static String KUDU_LOOKUP_CACHE_TTL = "kudu.lookup.cache.ttl";
        public static String KUDU_LOOKUP_MAX_RETRIES = "kudu.lookup.max-retries";
    }

    public static class Starrocks{
        public static String CONNECTOR = "starrocks";
        public static String JDBC_URL = "jdbc-url";
        public static String LOAD_URL = "load-url";
        public static String DATABASE_NAME = "database-name";
        public static String TABLE_NAME = "table-name";
        public static String USERNAME = "username";
        public static String PASSWORD = "password";
        public static String SINK_BUFFER_FLUSH_MAX_ROWS = "sink.buffer-flush.max-rows";
        public static String SINK_BUFFER_FLUSH_MAX_BYTES = "sink.buffer-flush.max-bytes";
        public static String SINK_BUFFER_FLUSH_INTERVAL_MS = "sink.buffer-flush.interval-ms";
        public static String SINK_PARALLELISM = "sink.parallelism";
    }
    public static class Raw{
        public static String FORMAT = "format";
        public static String RAW_CHARSET = "raw.charset";
        public static String RAW_ENDIANNESS = "raw.endianness";
    }

    public static class FileSystem {
        public static String CONNECTOR = "connector";
        public static String PATH = "path";
        public static String FORMAT = "format";
        public static String PARTITION_DEFAULT_NAME = "partition.default-name";
        public static String SINK_ROLLING_POLICY_FILE_SIZE = "sink.rolling-policy.file-size";
        public static String SINK_ROLLING_POLICY_ROLLOVER_INTERVAL = "sink.rolling-policy.rollover-interval";
        public static String SINK_ROLLING_POLICY_CHECK_INTERVAL = "sink.rolling-policy.check-interval";
        public static String AUTO_COMPACTION = "auto-compaction";
        public static String COMPACTION_FILE_SIZE = "compaction.file-size";
        public static String SINK_PARTITION_COMMIT_TRIGGER = "sink.partition-commit.trigger";
        public static String SINK_PARTITION_COMMIT_DELAY = "sink.partition-commit.delay";
        public static String SINK_PARTITION_COMMIT_WATERMARK_TIME_ZONE = "sink.partition-commit.watermark-time-zone";
        public static String PARTITION_TIME_EXTRACTOR_KIND = "partition.time-extractor.kind";
        public static String GETPARTITION_TIME_EXTRACTOR_KINDTIME_EXTRACTOR_CLASS = "partition.time-extractor.class";
        public static String PARTITION_TIME_EXTRACTOR_TIMESTAMP_PATTERN = "partition.time-extractor.timestamp-pattern";
        public static String SINK_PARTITION_COMMIT_POLICY_KIND = "sink.partition-commit.policy.kind";
        public static String SINK_PARTITION_COMMIT_POLICY_CLASS = "sink.partition-commit.policy.class";
        public static String SINK_PARTITION_COMMIT_SUCCESS_FILE_NAME = "sink.partition-commit.success-file.name";
        public static String SINK_PARALLELISM = "sink.parallelism";
    }
}